package com.example.wenhua.service;

import com.example.wenhua.entity.User;
import java.util.List;

/**
 * 用户业务逻辑接口
 */
public interface UserService {
    
    /**
     * 查询所有用户
     */
    List<User> getAllUsers();
    
    /**
     * 根据用户名查询用户
     */
    User getUserByHm(String hm);
    
    /**
     * 根据角色查询用户
     */
    List<User> getUsersByRole(Integer role);
    
    /**
     * 新增用户
     */
    boolean addUser(User user);
    
    /**
     * 更新用户信息
     */
    boolean updateUser(User user);
    
    /**
     * 删除用户
     */
    boolean deleteUser(String hm);
    
    /**
     * 用户登录验证
     */
    User login(String hm, String pwd);
    
    /**
     * 修改密码
     */
    boolean changePassword(String hm, String oldPwd, String newPwd);
    
    /**
     * 重置密码（管理员功能）
     */
    boolean resetPassword(String hm, String newPwd);
    
    /**
     * 密码加密
     */
    String encryptPassword(String password);
    
    /**
     * 验证密码
     */
    boolean verifyPassword(String password, String encryptedPassword);
    
    /**
     * 用户登录并生成JWT token
     */
    String loginWithToken(String hm, String pwd);
    
    /**
     * 验证用户权限
     */
    boolean hasPermission(String username, Integer requiredRole);
    
    /**
     * 刷新JWT token
     */
    String refreshToken(String token);
}